Test Suites এবং Test Cases কি? গাইড ও নোট

Web Development - জ্যাসমিনজেএস (JasmineJS) - JasmineJS এর বেসিক টেস্ট স্ট্রাকচার
297

JasmineJS এ টেস্টিং প্রক্রিয়া দুটি প্রধান উপাদানে ভাগ করা যায়: Test Suites এবং Test Cases। এগুলি আপনার কোডের আচরণ যাচাই করার জন্য একটি সংগঠিত এবং কার্যকরী পদ্ধতি প্রদান করে। নিচে এগুলোর ব্যাখ্যা দেয়া হলো।


Test Suite

Test Suite (টেস্ট স্যুইট) হলো এক বা একাধিক টেস্ট কেসের একটি গোষ্ঠী। এটি সাধারণত একটি নির্দিষ্ট ফাংশন, মডিউল বা বৈশিষ্ট্য পরীক্ষা করার জন্য ব্যবহৃত হয়। Test Suite গঠন করতে আমরা describe() ফাংশন ব্যবহার করি, যা টেস্টের একটি গোষ্ঠী বা ফিচার বর্ণনা করে। এই গোষ্ঠীর মধ্যে একাধিক it() ফাংশন (Test Cases) থাকতে পারে।

Test Suite এর কাঠামো:

describe("Test Suite Name", function() {
  // এক বা একাধিক it() ব্লক থাকবে
});
  • Test Suite Name: এখানে আপনি যেটি পরীক্ষা করতে চান (যেমন একটি ফাংশন বা মডিউল) তার নাম উল্লেখ করবেন।
  • it() ব্লক: Test Suite এর মধ্যে নির্দিষ্ট টেস্ট কেস থাকবে, যা it() ফাংশন দ্বারা নির্দিষ্ট হবে।

উদাহরণ:

describe("sum function", function() {
  it("should add two numbers correctly", function() {
    const sum = 2 + 3;
    expect(sum).toBe(5);  // ২ এবং ৩ যোগ করলে ৫ হবে
  });

  it("should return 0 if both numbers are 0", function() {
    const sum = 0 + 0;
    expect(sum).toBe(0);  // ০ এবং ০ যোগ করলে ০ হবে
  });
});

এখানে, describe() ব্লকটি sum function নামে একটি Test Suite তৈরি করেছে, যার মধ্যে দুটি Test Case রয়েছে যা it() ব্লক দ্বারা বর্ণিত।


Test Case

Test Case (টেস্ট কেস) হলো একটি নির্দিষ্ট আউটপুট বা আচরণ যাচাই করার জন্য একটি টেস্ট। এটি মূলত একটি একক কার্যক্রমের জন্য পরীক্ষা হয়, যেমন একটি ফাংশন কি সঠিকভাবে কাজ করছে কিনা। JasmineJS এ it() ফাংশনটি Test Case তৈরি করতে ব্যবহৃত হয়। এখানে আপনি টেস্টের আচরণ বর্ণনা করবেন এবং expect() ফাংশন দ্বারা পরীক্ষার ফলাফল যাচাই করবেন।

Test Case এর কাঠামো:

it("should perform a specific behavior", function() {
  // টেস্ট কোড এখানে থাকবে
});
  • it() ব্লক: এখানে আপনি টেস্টের বর্ণনা দেবেন (যেমন "এই ফাংশন দুটি সংখ্যা যোগ করবে") এবং সেই আচরণ পরীক্ষা করবেন।

উদাহরণ:

describe("multiply function", function() {
  it("should multiply two numbers correctly", function() {
    const result = 2 * 3;
    expect(result).toBe(6);  // ২ এবং ৩ গুণ করলে ৬ আসবে
  });

  it("should return a negative result when multiplying a positive and negative number", function() {
    const result = -2 * 3;
    expect(result).toBe(-6);  // -২ এবং ৩ গুণ করলে -৬ আসবে
  });
});

এখানে:

  • প্রথম it() ব্লকটি যাচাই করছে যে, ২ এবং ৩ গুণ করলে ৬ আসবে।
  • দ্বিতীয় it() ব্লকটি যাচাই করছে যে, একটি ধনাত্মক এবং একটি ঋণাত্মক সংখ্যা গুণ করলে ফলাফল ঋণাত্মক হবে।

Test Suite এবং Test Case এর মধ্যে পার্থক্য

বিষয়Test SuiteTest Case
সংজ্ঞাএক বা একাধিক টেস্ট কেসের একটি গোষ্ঠী।একটি নির্দিষ্ট আউটপুট বা আচরণ যাচাই করার জন্য একটি টেস্ট।
ব্যবহারফিচার বা মডিউল বর্ণনা করতে ব্যবহৃত হয়।একটি নির্দিষ্ট ফাংশন বা আচরণ পরীক্ষা করতে ব্যবহৃত হয়।
নির্দেশকdescribe() ফাংশন দ্বারা তৈরি হয়।it() ফাংশন দ্বারা তৈরি হয়।
সংগঠনএকাধিক টেস্ট কেসের মধ্যে গোষ্ঠী গঠন করা হয়।একটি একক টেস্ট কেস হিসাবে কাজ করে।

উদাহরণ: Test Suite এবং Test Case এর সমন্বয়

describe("calculator", function() {
  let calc;

  beforeEach(function() {
    calc = new Calculator();  // প্রতিটি টেস্টের আগে Calculator তৈরি হবে
  });

  it("should add two numbers correctly", function() {
    expect(calc.add(2, 3)).toBe(5);  // ২ এবং ৩ যোগ করলে ৫ হবে
  });

  it("should subtract two numbers correctly", function() {
    expect(calc.subtract(5, 3)).toBe(2);  // ৫ থেকে ৩ বাদ দিলে ২ আসবে
  });

  afterEach(function() {
    calc = null;  // টেস্টের পরে Calculator অবজেক্ট পরিষ্কার করা হবে
  });
});

এখানে:

  • Test Suite: describe() ব্লকটি calculator মডিউল পরীক্ষা করছে।
  • Test Cases: দুটি it() ব্লক টেস্ট কেস হিসেবে কাজ করছে:
    • প্রথমটি যোগফল পরীক্ষা করছে।
    • দ্বিতীয়টি বিয়োগফল পরীক্ষা করছে।

সারাংশ

  • Test Suite: এটি এক বা একাধিক টেস্ট কেসের একটি গোষ্ঠী। JasmineJS এ, describe() ফাংশন দিয়ে এটি তৈরি হয় এবং এটি একটি নির্দিষ্ট ফিচার বা মডিউল পরীক্ষা করে।
  • Test Case: এটি একটি নির্দিষ্ট আচরণ বা আউটপুট যাচাই করার জন্য একটি একক টেস্ট। it() ফাংশন দিয়ে এটি তৈরি হয় এবং এটি যাচাই করে যে একটি ফাংশন বা কার্যকারিতা সঠিকভাবে কাজ করছে কিনা।
Content added By
Promotion

Are you sure to start over?

Loading...